function numWays(n: number, relation: number[][], k: number): number {
    let ret: number = 0;
    let linkMap: Map<number, number[]>=new Map();
    for(let [s,t] of relation){
        if(linkMap.has(s)){
            linkMap.get(s).push(t);
        }
        else{
            linkMap.set(s,[t]);
        }
    }
    function search(p: number,step: number): void {
        if(step === k){
            if(p === n-1) ret++;
            return;
        }
        const links=linkMap.get(p)
        if(links){
            for(let t of links){
                search(t,step+1);
            }
        }
    }
    search(0,0);
    return ret;
};

// 执行用时：
// 96 ms
// , 在所有 TypeScript 提交中击败了
// 100.00%
// 的用户
// 内存消耗：
// 40 MB
// , 在所有 TypeScript 提交中击败了
// 100.00%
// 的用户